using EOSDigital.SDK;
using System.Collections.Generic;

namespace EOSDigital.API
{
	public sealed class MeteringModeValues : ValueBase
	{
		private static List<CameraValue> values;

		public static readonly CameraValue Spot;

		public static readonly CameraValue Evaluative;

		public static readonly CameraValue Partial;

		public static readonly CameraValue CenterWeightedAveraging;

		public static readonly CameraValue NotValid;

		public static CameraValue[] Values
		{
			get
			{
				return MeteringModeValues.values.ToArray();
			}
		}

		static MeteringModeValues()
		{
			MeteringModeValues.Spot = new CameraValue("Spot", 1, 0.0, PropertyID.MeteringMode);
			MeteringModeValues.Evaluative = new CameraValue("Evaluative", 3, 0.0, PropertyID.MeteringMode);
			MeteringModeValues.Partial = new CameraValue("Partial", 4, 0.0, PropertyID.MeteringMode);
			MeteringModeValues.CenterWeightedAveraging = new CameraValue("Center-weighted averaging", 5, 0.0, PropertyID.MeteringMode);
			MeteringModeValues.NotValid = new CameraValue("Not valid", -1, 0.0, PropertyID.MeteringMode);
			MeteringModeValues.values = new List<CameraValue>();
			MeteringModeValues.values.Add(MeteringModeValues.Spot);
			MeteringModeValues.values.Add(MeteringModeValues.Evaluative);
			MeteringModeValues.values.Add(MeteringModeValues.Partial);
			MeteringModeValues.values.Add(MeteringModeValues.CenterWeightedAveraging);
			MeteringModeValues.values.Add(MeteringModeValues.NotValid);
		}

		public static CameraValue GetValue(int value)
		{
			return ValueBase.GetValue(value, MeteringModeValues.values);
		}

		public static CameraValue GetValue(string value)
		{
			return ValueBase.GetValue(value, MeteringModeValues.values);
		}

		public static CameraValue GetValue(double value)
		{
			return ValueBase.GetValue(value, MeteringModeValues.values);
		}
	}
}
